From ddacfe870cdd525f14fce1e34b012107487880e7 Mon Sep 17 00:00:00 2001 From: "leendert@watson.ibm.com[iap10]" Date: Tue, 21 Jun 2005 07:06:04 +0000 Subject: [PATCH] bitkeeper revision 1.1721 (42b7bc5cSB_7vlyUCCpWT0qq4GN_xg) [PATCH] vmxassist-cleanup.patch Some minor fixups and improved debug output. Signed-Off-By: Leendert van Doorn --- tools/firmware/vmxassist/Makefile | 4 ++-- tools/firmware/vmxassist/setup.c | 6 ++---- tools/firmware/vmxassist/vm86.c | 11 ++++++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/firmware/vmxassist/Makefile b/tools/firmware/vmxassist/Makefile index a9b142363c..97d6cc4c6e 100644 --- a/tools/firmware/vmxassist/Makefile +++ b/tools/firmware/vmxassist/Makefile @@ -23,9 +23,9 @@ include $(XEN_ROOT)/tools/Rules.mk # The emulator code lives in ROM space TEXTADDR=0x000D0000 + DEFINES=-DDEBUG -DTEXTADDR=${TEXTADDR} -XENINC=-I../../../xen/include -#TEXTADDR=0x000E0000 +XENINC=-I$(XEN_ROOT)/xen/include #DEFINES=-DDEBUG -DTEST -DTEXTADDR=${TEXTADDR} #XENINC=-I/home/leendert/xen/xeno-unstable.bk/xen/include diff --git a/tools/firmware/vmxassist/setup.c b/tools/firmware/vmxassist/setup.c index 64b9a6e06d..dceac64099 100644 --- a/tools/firmware/vmxassist/setup.c +++ b/tools/firmware/vmxassist/setup.c @@ -21,11 +21,9 @@ #include "util.h" #include "machine.h" -#ifndef TEST #if (VMXASSIST_BASE != TEXTADDR) #error VMXAssist base mismatch #endif -#endif #define NR_PGD (PGSIZE / sizeof(unsigned)) @@ -118,8 +116,8 @@ setup_gdt(void) "movl %%eax,%%fs;" "movl %%eax,%%gs;" "movl %%eax,%%ss" : : "a" (DATA_SELECTOR)); -/* XXX 0x10 == CODE_SELECTOR (figure out gnuas) */ - __asm__ __volatile__ ("ljmp $0x10,$1f; 1:"); + + __asm__ __volatile__ ("ljmp %0,$1f; 1:" : : "i" (CODE_SELECTOR)); __asm__ __volatile__ ("ltr %%ax" : : "a" (TSS_SELECTOR)); } diff --git a/tools/firmware/vmxassist/vm86.c b/tools/firmware/vmxassist/vm86.c index d63843660e..d6ac150683 100644 --- a/tools/firmware/vmxassist/vm86.c +++ b/tools/firmware/vmxassist/vm86.c @@ -39,6 +39,13 @@ enum vm86_mode mode; #ifdef DEBUG int traceset = 0; + +char *states[] = { + "", + "", + "", + "" +}; #endif /* DEBUG */ @@ -596,7 +603,6 @@ set_mode(struct regs *regs, enum vm86_mode newmode) { switch (newmode) { case VM86_REAL: - TRACE((regs, 0, "")); if (mode == VM86_PROTECTED_TO_REAL) { real_mode(regs); break; @@ -607,7 +613,6 @@ set_mode(struct regs *regs, enum vm86_mode newmode) break; case VM86_REAL_TO_PROTECTED: - TRACE((regs, 0, "")); if (mode == VM86_REAL) { regs->eflags |= EFLAGS_TF; break; @@ -624,7 +629,6 @@ set_mode(struct regs *regs, enum vm86_mode newmode) panic("unexpected protected-to-real mode transition"); case VM86_PROTECTED: - TRACE((regs, 0, "")); if (mode == VM86_REAL_TO_PROTECTED) { protected_mode(regs); break; @@ -634,6 +638,7 @@ set_mode(struct regs *regs, enum vm86_mode newmode) } mode = newmode; + TRACE((regs, 0, states[mode])); } void -- 2.30.2